package org.spin.gaitlib.filter;
import java.util.Arrays;
/**
* A filter that returns the median of a set of input values.
*
* @author Mike
*/
public class MedianFilter implements IFilter {
/**
* Return the median of <code>input</code>.
*/
public float getFilteredValue(float[] input) {
int length = input.length;
if (length == 0) {
return 0;
}
float[] sortedArray = new float[length];
System.arraycopy(input, 0, sortedArray, 0, length);
Arrays.sort(sortedArray);
int middle = length / 2;
if (length % 2 == 1) {
return sortedArray[middle];
} else {
return (sortedArray[middle - 1] + sortedArray[middle]) / 2;
}
}
}